package week5;


/**
 *
 * 63. 不同路径 II
 * https://leetcode-cn.com/problems/unique-paths-ii/
 *
 *
 *
 * 执行结果：  通过  显示详情
 *
 * 添加备注
 * 执行用时：0 ms, 在所有 Java 提交中击败了100.00% 的用户
 * 内存消耗：37.7 MB, 在所有 Java 提交中击败了66.65% 的用户
 * 通过测试用例：41 / 41
 * 炫耀一下:
 *
 *
 *
 */
public class Week5UniquePathsII {

    public int uniquePathsWithObstacles(int[][] obstacleGrid) {
        int columnLength = obstacleGrid.length;
        int rowLength = obstacleGrid[0].length;

        int[] array = new int[rowLength];

        array[0] = obstacleGrid[0][0] == 0 ? 1 : 0;
        for(int f1 = 0; f1 < columnLength; f1++) {
            for(int f2 = 0; f2 < rowLength; f2++) {
                if(obstacleGrid[f1][f2] == 1) {
                    array[f2] = 0;
                    continue;
                }
                if(f2 - 1 >= 0 && obstacleGrid[f1][f2 - 1] == 0) {
                    array[f2] += array[f2 - 1];
                }
            }
        }

        return array[rowLength - 1];

    }
}
